/**
 * 双指针，前后两个指针， 每次更新最大的就可以了。
 *
 */

const heights = [1,8,6,2,5,4,8,3,7]

function  getMaxArea(heights){
    // 如果不是数组或者数组的长度为0
    if(!Array.isArray(heights) || !heights.length) {
        return 0;
    }

    // 如果有数据
    let i=0, j= heights.length -1,maxArea = 0

    while (i< j) {
        if(heights[i] > heights[j]){
            maxArea = Math.max(maxArea,(j -i) *heights[j])
            j--;
        } else{
            maxArea =Math.max(maxArea, (j -i) *heights[i])
            i ++
        }
    }
    return maxArea
}

console.log(getMaxArea(heights));



function getMaxAreaV1(heights) {
    if(!Array.isArray(heights) || !heights.length) return 0

    let i=0, j= heights.length-1, maxArea=0

    while(i< j) {
        if(heights[i]> heights[j]) {
            maxArea = Math.max(maxArea, heights[j] * (j - i))
            j--
        }else {
            maxArea = Math.max(maxArea, heights[i] * (j - i))
            i++
        }
     }

    return maxArea;
 }

console.log(getMaxAreaV1(heights))
